$(function () {
    //定义全局变量
    window.pageSize=5;
    window.pageNum=1;
    window.keyword="";
    //显示数据
    showPage();
    //全选/全不选功能
    $("#summaryBox").click(function () {
        //1.获取当前checkBox的选中状态
        var currentStatus=this.checked;
        //2.设置itemBox的选中状态
        $(".itemBox").prop("checked",currentStatus)
    })

    $("#batchRemoveBtn").click(function () {
        //获取被选中的itemBox数组长度
        var length=$(".itemBox:checked").length;
        //如果长度为0，说明没有选择itemBox
        if(length==0){
            layer.msg("请至少选择1条");
            return ;
        }
        //在全局作用域内创建certIdArray
        window.certIdArray=new Array();
        //遍历$(".itemBox:checked")
        $(".itemBox:checked").each(function () {
            // 通过checkbox的roleid属性获取roleId值
            var certId = $(this).attr("certid");

                // 存入数组
                window.certIdArray.push(certId);
        })
        showRemoveConfirmModal();
    })
    //确认删除
    $("#confirmModalBtn").click(function () {
        var requestBody=JSON.stringify(window.certIdArray);
        $.ajax({
            url:"/cert/batch/remove",
            type:"post",
            data:requestBody,
            contentType:"application/json;charset=UTF-8",
            dataType:"json",
            success:function (response) {
                var result=response.result;
                if(result=="SUCCESS"){
                    layer.msg("操作成功！");
                    showPage();
                }
                if(result=="FAILED"){
                    layer.msg(response.message);
                }
                $("#confirmModal").modal("hide");
            },
            "error":function (response) {
                layer.msg(response.message);
            }
        })
    })
    //单条删除
    $('#certTableBody').on("click",".removeBtn",function () {
        // 获取当前记录的roleId
        var certId = $(this).attr("certId");
        // 存入全局变量数组
        window.certIdArray = new Array();
        window.certIdArray.push(certId);
        // 打开模态框（后续所有操作都和批量删除一样）
        showRemoveConfirmModal();
    });
    //增加
    $("#addBtn").click(function(){
        $("#addModal").modal("show");
    });
    //确认添加
    $("#addModalBtn").click(function () {
        // 1.收集文本框内容
        var certName = $.trim($("#certNameInput").val());
        if(certName == null || certName == "") {
            layer.msg("请输入有效角色名称！");
            return ;
        }
        $.ajax({
            url:"/cert/save/cert",
            type:"post",
            data:{
                "certName":certName
            },
            dataType:"json",
            success:function (response) {
                var result = response.result;
                if(result == "SUCCESS") {
                    layer.msg("操作成功！");
                    // 前往最后一页
                    window.pageNum = 999999;
                    showPage();
                    // 不管成功还是失败，关闭模态框
                    $("#addModal").modal("hide");

                    // 清理本次在文本框填写的数据
                    $("#certNameInput").val("");
                }else {
                    layer.msg(response.message);
                }
            }
        });
    });
    //修改
    $("#certTableBody").on("click",".editBtn",function(){

        // 1.获取当前按钮的roleId
        window.certId = $(this).attr("certId");

        // 2.获取当前按钮所在行的roleName
        var certName = $(this).parents("tr").children("td:eq(2)").text();

        // 3.修改模态框中文本框的value值，目的是在显示roleName
        $("#certNameInputEdit").val(certName);

        // 4.打开模态框
        $("#editModal").modal("show");
    });
    //确认修改
    $("#editModalBtn").click(function () {
        // 1.获取文本框值
        var certName = $.trim($("#certNameInputEdit").val());

        if(certName == null || certName == "") {
            layer.msg("请输入有效角色名称！");

            return ;
        }
        $.ajax({
            url:"/cert/update/cert",
            type:"post",
            data:{
                "id":window.certId,
                "name":certName
            },
            dataType:"json",
            success:function (response) {
                var result = response.result;
                if(result == "SUCCESS") {
                    layer.msg("操作成功！");
                    // 3.操作成功重新分页
                    showPage();
                }
                if(result == "FAILED") {
                    layer.msg(response.message);
                }

                // 4.不管成功还是失败，关闭模态框
                $("#editModal").modal("hide");
            }
        });
    });
})
function showPage() {
    $.ajax({
        url:"/cert/search/by/keyword",
        type:"post",
        dataType:"JSON",
        data:{
            "pageNum":window.pageNum,
            "pageSize":window.pageSize,
            "keyword":window.keyword
        },
        success:function (result) {
            if(result.result=="SUCCESS"){
                //解析数据
                $("#certTableBody").empty();
                //获取数据集合
                var list=result.data.list;
                //判断list是否有效
                if(list==null||list.length==0){
                    $("#certTableBody").append("<tr><td colspan='4' style='text-align:center;'>没有查询到数据！</td></tr>");
                    return ;
                }
                for (var i=0;i<list.length;i++){
                    var cert=list[i];
                    //数据
                    var numberTd = "<td>"+(i+1)+"</td>";
                    var checkBoxTd = "<td><input class='itemBox' certid='"+cert.id+"' type='checkbox'></td>";
                    var certNameTd = "<td>"+cert.name+"</td>";

                    //按钮
                    var checkBtn = "<button type='button' class='btn btn-success btn-xs'><i class=' glyphicon glyphicon-check'></i></button>";
                    var pencilBtn = "<button certId='"+cert.id+"' type='button' class='btn btn-primary btn-xs editBtn'><i class=' glyphicon glyphicon-pencil'></i></button>";
                    var removeBtn = "<button certId='"+cert.id+"' type='button' class='btn btn-danger btn-xs removeBtn'><i class=' glyphicon glyphicon-remove'></i></button>";

                    var btnTd = "<td>"+checkBtn+" "+pencilBtn+" "+removeBtn+"</td>";
                    var tr = "<tr>"+numberTd+checkBoxTd+certNameTd+btnTd+"</tr>";
                    //将前面拼好的html代码追加到#certTableBoby中
                    $("#certTableBody").append(tr);
                }
                //显示分页导航
                initPagination(result.data);

            }else{
                layer.msg(result.message);
            }
        }
    })
}
//声明函数封装导航条初始化操作
function initPagination(pageInfo) {
    //声明变量存储fen'ye导航条显示时的属性设置
    var paginationProperties={
        num_edge_entries : 3,        //边缘页数
        num_display_entries : 5,      //主体页数
        callback : pageselectCallback, //回调函数
        items_per_page : window.pageSize,  //每页显示数据数量，就是pageSize
        current_page : (window.pageNum - 1),//当前页页码
        prev_text : "上一页",       //上一页文本
        next_text : "下一页"        //下一页文本
    };
    //显示分页导航条
    $("#Pagination").pagination(pageInfo.total,paginationProperties);

}
// 在每一次点击“上一页”、“下一页”、“页码”时执行这个函数跳转页面
function pageselectCallback(pageIndex,jq) {
    // 将全局变量中的pageNum修改为最新值
    // pageIndex从0开始，pageNum从1开始
    window.pageNum = pageIndex + 1;
    // 调用分页函数重新执行分页
    showPage();
    return false;
}
function showRemoveConfirmModal() {
    $("#confirmModal").modal("show");
    var requestBody=JSON.stringify(window.certIdArray);
    var ajaxResult=$.ajax({
        url:"/cert/get/list/by/id/list",
        type:"post",
        data:requestBody,
        contentType:"application/json;charset=UTF-8",
        dataType:"json",
        success:function (ajaxResult) {
         if(ajaxResult.result=="SUCCESS"){
             $("#confirmModalTableBody").empty();
             var certList=ajaxResult.data;
             for(var i=0;i<certList.length;i++){
                 var cert=certList[i];
                 var id=cert.id;
                 var name=cert.name;
                 var trHTML="<tr><td>"+id+"</td><td>"+name+"</td></tr>";
                 $("#confirmModalTableBody").append(trHTML);

             }
         }else{
             layer.msg(ajaxResult.message);
             return null;
         }
        }
    })
}
//修改
// 在点击编辑按钮时执行这个函数，打开模态框
function showEditModal(currentBtn) {

    // 打开模态框
    $("#menuEditModal").modal("show");

    // 获取当前节点的id存入全局变量
    window.menuId = currentBtn.id;


}